package leeon.word;

import java.io.FileInputStream;

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Range;
import org.apache.poi.hwpf.usermodel.Table;
import org.apache.poi.hwpf.usermodel.TableIterator;
import org.apache.poi.hwpf.usermodel.TableRow;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class TestPOI {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			FileInputStream in = new FileInputStream("D:\\b.doc");
			// FileOutputStream out = new FileOutputStream("D:\\o.doc");
			// HWPFFileSystem hwpfsys = new HWPFFileSystem();
			// hwpfsys.getStream("d://b.doc");
			POIFSFileSystem pfs = new POIFSFileSystem(in);
			HWPFDocument hwpf = new HWPFDocument(pfs);
			// hwpf.write(hwpfsys.getStream("D://e.doc"));
			// Range range = new Range(0, (int) file.length(), hwpf);
			Range range = hwpf.getRange();
			// StyleSheet styleSheet = hwpf.getStyleSheet();

			TableIterator it = new TableIterator(range);
			// 遍历一个DOC中的所有表格
			while (it.hasNext()) {
				Table tb = (Table) it.next();
				
				// 遍历表格的行
				for (int i = 0; i < tb.numRows(); i++) {
					TableRow tr = tb.getRow(i);
					// 遍历表格的列
					for (int j = 0; j < tr.numCells(); j++) {
						// 往表格中插入数据
//						TableCell td = tr.getCell(j);
						String text = "第" + i + "行第" + j + "列";
						System.out.println(text);
						// int p = td.numParagraphs();
						// Paragraph para = td.getParagraph(p);
						// ParagraphProperties pp = new ParagraphProperties();
						// para.insertBefore(text);
					}
				}
			}
			// 在表格外面插入内容
//			CharacterProperties cp = new CharacterProperties();
//			cp.setBold(true);
//			cp.setCharacterSpacing(10);
//			cp.setChse(CharacterProperties.SPRM_CHARSCALE);
//			cp.setCapitalized(true);
//			int p = range.numParagraphs();
//			Paragraph para = range.getParagraph(p - 1);
//			para.insertAfter("test poi successful!", cp);
//			para.insertAfter("测试成功", cp);
//			hwpf.write(out);
//			out.close();
		} catch (Exception ex) {
			ex.printStackTrace();
		}

	}

}
